查看原文
其他

针对资源匮乏语言的文字转语音系统:任重而道远

Google 谷歌开发者 2018-12-14

文 / Google AI 软件工程师 Alexander Gutkin


这是系列博文的第 4 期,旨在报告我们为资源匮乏的语言构建文字转语音 (TTS) 系统所做的工作。在第 1 期中,我们介绍了通过众包方式为 Project Unison 项目收集声学数据所作的努力。在第 2 期中,我们介绍了如何根据这些数据构建参数语音。在第 3 期中,我们介绍了为 TTS 系统编译发音词典的过程 [1] 。在本期中,我们会说明如何构建能够说多种语言的单一 TTS 系统。

[1]:相关链接

第一期 

https://ai.googleblog.com/2015/09/crowdsourcing-text-to-speech-voice-for.html

第二期 

https://ai.googleblog.com/2015/12/text-to-speech-for-low-resource.html

第三期 

https://ai.googleblog.com/2016/02/text-to-speech-for-low-resource.html


为任何特定语言开发 TTS 系统都是一项巨大的挑战,并需要大量高品质录音和语言注解。正因为如此,这些系统只适用于全球很小一部分语言。在这种情况下,自然会出现一个问题,正如我们在前三期博文中所述,相比使用来自多个语者的单语言数据为单一语言构建高品质语音,我们能否以某种方式将来自使用多种语言的多个语者的有限单语言数据合并,从而构建可以说任何语言的单一多语言语音?

根据我们对创建多语言 TTS 系统(能够合成来自单一模型的多种语言中的语音)进行的一项初步调查,我们开发出一个
新模型(https://ai.google/research/pubs/pub46142)。该模型能够对所有语言使用统一音系表征,即国际音标 (IPA)。使用该表征训练的模型既可合成训练数据中发现的语言,也能合成训练中未观察到的语言。这有两大好处:首先,从相关语言汇总训练数据会扩大音位覆盖范围,从而提升训练中观察到的语言的合成品质。其次,由于该模型包含许多汇总在一起的语言,所以 “未发现的” 语言在模型中更可能有“相关”语言,如此便可指导和帮助合成过程。  



探索紧密相关的印尼语言

我们首先将这种多语言方法应用于印尼语言,其中标准印尼语是该国的官方语言,有超过 2 亿人将其作为母语或第二语言使用。作为使用人数最多的两种印尼方言,爪哇语大约有 9000 万母语使用者,而巽他语大约有 4000 万母语使用者。与多年来受到计算语言学和语音学家密切关注的印尼语不同,由于缺少可用的高品质开放语料库,目前有关爪哇语和巽他语的资源非常匮乏。我们与印尼的大学合作,通过众包形式收集有关爪哇语和巽他语的录音。

由于标准印尼语的语料库更加庞大,而且是在专业工作室中录制,因此我们作出的假设是,相比使用 “经典” 单语言方法构建的系统,将三种语言结合在一起可能会带来显著改善。为了验证这一假设,我们首先开始分析这三种语言音系之间的相似点和重大差异(如下所示),然后使用相关信息设计音系表征,从而在保留重大差异的同时,让这些语言之间实现最大程度的共享。 


以国际音标符号表示的印尼语、爪哇语和巽他语的共同音位清单    


将爪哇语和巽他语语音与标准印尼语一起训练的结果远胜于通过我们用作基线的单语言多语者语音进行训练的模型。于是,我们在 Google 翻译和 Android 等 Google 产品中推出爪哇语和巽他语 TTS 系统。



扩展到更多样化的南亚语系

接下来,我们重点研究南亚语言,其中包括两个截然不同的语系:印度雅利安语系和达罗毗荼语系。与上述印尼语言不同,这些语言之间的差别更大,特别是它们的音系之间的重叠之处明显更小。下表显示了我们实验中的语言超集,其中包括所用的各种正字法,以及与表示 “文化” 的梵文单词相关的现代单词。这些语言在各组内均有显著差异,但在这些组别内也有一些相似之处。


表示 “文化” 的梵文单词在不同语言中的衍生词

 

在这项研究中,我们使用上文提到的统一音系表征,以充分利用我们拥有的数据,并消除特定音位数据不足的问题。我们将类似音位合并到多语言音位清单的单一代表音位中,从而实现了这一目的。我们尽可能对音系相近的语言使用相同清单。例如,我们为泰卢固语和卡纳达语制作了相同的音位清单,对西孟加拉语和奥里亚语也是如此。对于类似古吉拉特语和马拉地语的其他语言对,我们将其中一种语言的清单复制到另一种语言,但作出一些修改,以便在他们的音位清单中反映语言差异。我们为这些实验中的所有语言保留了一个共同的基础表征,以映射不同清单中的类似音位,如此一来,我们仍可使用来自一种语言的数据训练其他语言。

此外,我们还确保根据使用中的音系(而非正字法)确定相关表征。例如,虽然在马拉地语中,长元音和短元音有不同的字母,但它们在语感上没有对比性,因此我们使用单一表征来表示它们,以增加训练数据的可靠性。同样,如果两种语言使用在历史上与相同梵文字母相关的一个字符来表示不同的声音,或使用不同字母来表示类似的声音,则我们的映射反映出音系的相似性,而不是历史或正字法表征。本篇博文并不涵盖统一音位清单的全部特点,请参阅我们
最近的论文以了解详情(https://ai.google/research/pubs/pub47341)


描述多语言文字转语音方法的图表。输入文本查询会由特定语言的语言前端处理,以便在共享的音位表征中生成发音,并用作不受语言影响的声学模型输入。然后,该模型会为各个查询生成音频


我们的实验重点研究印度孟加拉语、古吉拉特语、卡纳达语、马拉雅拉姆语、马拉地语、泰米尔语、泰卢固语和乌尔都语。除了孟加拉语和马拉地语以外,其中大部分语言都是通过众包方式获取录音数据和转录内容。对于其中每种语言,我们都构建了使用全部可用数据的多语言声学模型。此外,该声学模型还包含之前通过众包方式收集的尼泊尔语和僧伽罗语数据,以及印地语和孟加拉国的孟加拉语数据。 

实验结果很振奋人心:对于大多数语言,多语言语音的表现超过使用传统单语言方法构建的语音。我们对奥里亚语开展了进一步的实验,由于没有训练数据,我们通过使用南亚多语言模型来尝试合成数据。主观听辨测试的结果表明,以奥里亚语为母语的人士判定所生成的音频可以接受,而且也能理解。我们使用多语言方法与语音团队合作构建而成的马拉地语、泰米尔语、泰卢固语和马拉雅拉姆语语音已经在最近举办的 “Google for India” 活动中发布,且目前正在为 Google 翻译和其他 Google 产品提供支持。 

从研究角度来看,通过众包方式收集数据非常有趣,而且推动了我们与母语使用者社区建立有效的合作。我们对马来-波利尼西亚、印度-雅利安和达罗毗荼语系进行的实验表明,在大多数情况下,使用深度学习技术并通过单一的多语言声学模型在多种语言之间分享数据,可以缓解某些困扰资源匮乏语言的严重数据稀缺问题,并且能够生成可用于 Google 产品的高品质语音。

这项 TTS 研究是将语音和语言技术应用于全球更多语言的第一步,我们希望其他人也能加入到这项事业中来。为了帮助研究社区的发展,我们在 SLTU 和 Interspeech 会议上与其他研究者讨论此项研究后,开放了尼泊尔语、僧伽罗语、孟加拉语、高棉语、爪哇语和巽他语语料库的源代码。我们计划日后继续推出我们项目中其他语言的更多数据集。



更多 AI 相关阅读:

· 不受限对抗样本挑战赛介绍

· 概念字幕:图像字幕制作的新数据集和挑战

· Dopamine - 灵活、可重复的强化学习研究新框架


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存